本文同步分享於個人部落格:Liwen Chiou | Digital Architect & Full-Stack Engineer
「孩子,把你的背包放在桌上。今天,我們不練新招式。我要告訴你,你這 30 天到底在練什麼。」
你一直問我,這 27 天來不斷磨練這些零件,究竟是為了拿起哪一把傳說中的聖劍。
我總是叫你耐心等待,叫你先去學會如何搬運記憶體、如何封印變數、如何聽從資料的指令。你可能覺得我老糊塗了,覺得這些基礎與那把華麗的聖劍毫無關係。
現在,看好了。」
我拿起你背包裡那些看似不起眼的「零件」,將它們一個一個排在石桌上。
「這是 Day 03 的箭頭函式,你當時覺得它只是個語法糖。」
「這是 Day 04 的解構賦值,你覺得它只是為了少打幾個字。」
「這是 Day 07 的閉包,你當時為了搞懂它差點燒掉腦袋。」
我將這些零件湊在一起,口中低吟著 Day 27 的咒語:「UI = f(state)」。
剎那間,金色的光芒充斥了整個大廳。那些零件自動咬合、重組、升華。原本雜亂的 JS 代碼,在光芒中凝結成了一柄完美的、不斷跳動著資料流的長劍。
「這就是 React。」 我將劍柄遞給你。「它不是什麼外星科技。它,就是你這 30 天來親手鍛造的 JS 基礎。」
為了讓你徹底看穿聖劍的構造,導師幫你整理了這份 「轉職映射表」。你會發現,React 裡面的每一個名詞,你其實早就學過了。
| 冒險階段 | 你的 JS 核心裝備 | React 聖劍的真面目 | 導師的白話註解 |
|---|---|---|---|
| Day 03 | 箭頭函式 (Arrow Function) | Functional Component | 組件的「肉體」,一個回傳畫面的函式。 |
| Day 04 | 解構賦值 (Destructuring) | Props 接收 | 讓組件能優雅地拆開傳進來的寶箱 (Data)。 |
| Day 06 | 展開運算子 (...) | Immutable State Update | 為了不弄壞舊資料,先影印一份再修改。 |
| Day 07 | 閉包 (Closure) | useState / useEffect | Hooks 之所以能「記住」變數,全靠閉包。 |
| Day 09 | 陣列方法 (map / filter) | List Rendering | 在 React 裡畫出怪物清單的唯一方法。 |
| Day 12 | 短路判斷 (&& / ??) | Conditional Rendering | 決定畫面上要不要出現這個 NPC 的開關。 |
| Day 20 | Promise / Async / Await | Data Fetching | 獲取異世界資料的標配流派。 |
| Day 27 | 資料驅動 (State-driven) | The Soul of React | 「只改資料,不碰 DOM」就是 React 的核心。 |
導師的圖解心法: 看清楚。中心那顆核心是 State (Day 27),周圍纏繞著 閉包 (Day 07) 保護著它。劍刃是由 箭頭函式 (Day 03) 鍛造而成,而劍柄上的寶石則是 解構賦值 (Day 04)。

let count = 0;
const btn = document.querySelector("#btn");
const display = document.querySelector("#display");
btn.addEventListener("click", () => {
count++;
display.textContent = count; // 💔 每一行都要手動動 DOM
});
// 💡 原理就是 Day 03 (函式) + Day 07 (閉包) + Day 27 (資料驅動)
function Counter() {
const [count, setCount] = useState(0); // 這裡利用了閉包來鎖住 count
return (
<button onClick={() => setCount(count + 1)}>目前的點擊次數:{count}</button>
); // 💡 只管宣告畫面長什麼樣子,不理會 DOM 操作
}
既然 React 就是 JS,那為什麼我們不直接寫 JS 就好?
導師告訴你:因為 React 是一個「極其勤奮且聰明的僕人」。
在 Day 27,我們學會了「重新投影」的思維,但我們的 render 函式很暴力,每次都是毀掉整塊 HTML 重新生成。
React 的聖劍裡內建了 「虛擬 DOM (Virtual DOM)」。它會拿著兩張照片快速比對,只在那 0.01% 有變動的地方輕輕動一下手術。這就是為什麼你的網頁在大規模更新時,依然能流暢得像絲綢一樣。
很多冒險者在學 React 的第一天,就被那些奇形怪狀的語法嚇跑了。他們覺得那是新的語言,覺得自己這輩子都學不會。
其實,那是因為他們沒有像你一樣,先花 27 天去磨練 JS 的靈魂。
只要你記得:「框架會變換名字,但 JS 的底層邏輯永恆不變。」 當你握住 React 聖劍的那一刻,你會感覺到一股熟悉的熱流。那是你過去 27 天流過的汗水,在對你發出共鳴。
天色微亮,營火雖已燃盡,但你眼中卻閃爍著領悟的光芒。在前往演武場挑戰關卡前,我已經幫你把靈魂碎片精煉成了這份「戰術錦囊」。拿好它,今日的任務不再是負擔,而是你證明自我的舞台。去吧,公會的英雄榜在等著你的戰報。
document.querySelector?